"""
测试配置文件
"""
import os
from pathlib import Path

# 项目根目录
ROOT_DIR = Path(__file__).parent.parent.parent

# 浏览器类型 (chrome, firefox, edge)
BROWSER = os.getenv('BROWSER', 'chrome')

# Web应用URL
BASE_URL = os.getenv('BASE_URL', 'http://localhost:8080')

# 隐式等待时间 (秒)
IMPLICIT_WAIT = 1

# 显式等待超时时间 (秒)
EXPLICIT_WAIT = 2

# 截图保存路径
SCREENSHOTS_DIR = os.path.join(ROOT_DIR, 'screenshots')

# 日志保存路径
LOGS_DIR = os.path.join(ROOT_DIR, 'logs')

# 报告保存路径
REPORTS_DIR = os.path.join(ROOT_DIR, 'tests', 'reports')

# 测试数据路径
TEST_DATA_DIR = os.path.join(ROOT_DIR, 'tests', 'test_data')

# 浏览器选项
HEADLESS = os.getenv('HEADLESS', 'False').lower() == 'true'

# 重试次数
MAX_RETRY = 3

# 浏览器配置
BROWSER_CONFIG = {
    "browser_type": "chrome",  # 浏览器类型：chrome, firefox, edge
    "headless": False,  # 是否使用无头模式
    "maximize_window": True,  # 是否最大化窗口
    "implicit_wait": 1,  # 隐式等待时间（秒）
    "page_load_timeout": 2,  # 页面加载超时时间（秒）
}

# 应用配置
APP_CONFIG = {
    "base_url": "http://localhost:8080",  # 应用基础URL
    "login_url": "http://localhost:8080/login",  # 登录页面URL
    "profile_url": "http://localhost:8080/back/user/person",  # 个人中心页面URL
}

# 测试数据配置
TEST_DATA = {
    "username": "admin",  # 测试用户名
    "password": "123456",  # 测试密码
}

# 等待时间配置
WAIT_CONFIG = {
    "short_wait": 1,  # 短等待时间（秒）
    "medium_wait": 2,  # 中等等待时间（秒）
    "long_wait": 3,  # 长等待时间（秒）
    "login_wait": 1,  # 登录后等待时间（秒）
    "page_transition_wait": 1,  # 页面跳转等待时间（秒）
    "form_interaction_wait": 1,  # 表单交互等待时间（秒）
    "button_click_wait": 1,  # 按钮点击后等待时间（秒）
    "save_operation_wait": 1,  # 保存操作等待时间（秒）
    "dialog_wait": 2,  # 对话框出现等待时间（秒）
}

# WebDriver配置
WEBDRIVER_CONFIG = {
    "chrome_driver_path": "D:\\chromedriver\\chromedriver.exe",  # Chrome驱动路径
    "firefox_driver_path": "",  # Firefox驱动路径
    "edge_driver_path": "",  # Edge驱动路径
}

# 日志配置
LOG_CONFIG = {
    "log_level": "INFO",  # 日志级别：DEBUG, INFO, WARNING, ERROR, CRITICAL
    "log_file": "test_automation.log",  # 日志文件名
    "log_format": "%(asctime)s - %(levelname)s - %(message)s",  # 日志格式
}

# 截图配置
SCREENSHOT_CONFIG = {
    "take_screenshot_on_failure": True,  # 测试失败时是否截图
    "screenshot_dir": "screenshots",  # 截图保存目录
}

# 重试配置
RETRY_CONFIG = {
    "max_retries": 3,  # 最大重试次数
    "retry_delay": 1,  # 重试间隔时间（秒）
} 